home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Development / Source / Mailcheck Source / init src / mmc_init.c < prev   
Encoding:
C/C++ Source or Header  |  1992-06-15  |  1.6 KB  |  98 lines  |  [TEXT/KAHL]

  1. /*
  2.  * INIT to load and start the mac mail check driver
  3.  * by Aaron Wohl (aw0g+@andrew.cmu.edu) jul 1990
  4.  * Carnegie-Mellon University
  5.  * Special Projects
  6.  * Pittsburgh, PA 15213-3890
  7.  * (412)-268-5032
  8.  */
  9.  
  10.  
  11. void real_main(void);
  12.  
  13. void main()
  14. {
  15.   asm {
  16.       move.l a4,-(sp)
  17.       lea main,a4
  18.       jsr real_main
  19.       move.l (sp)+,a4
  20.   }
  21. }
  22.  
  23. #include "mmc_core.h"
  24. #include "mmc_drvr_find.h"
  25. #include "mmc_drvr_install.h"
  26. #include "mmc_prep.h"
  27. #include "string.h"
  28. #include "CShowINIT_PROC.h"
  29.  
  30. #define cpanal_ICON    (-4064)
  31. #define on_ICON     (-4064)
  32.  
  33. #define start_ICON    (-4063)
  34. #define off_ICON    (-4062)
  35. #define sick_ICON    (-4061)
  36. #define finder_ICON    (-4059)
  37.  
  38. void tick(int refnum);
  39. void tick(int refnum)
  40. {
  41.   mmc_io_record s;
  42.   INIT_CPB(s,refnum,MMC_run);
  43.   PBControl((void*)&s,FALSE);
  44. }
  45.  
  46. LDEF(int mmc_start(void))
  47. {
  48.   int err;
  49.   mmc_state s;
  50.   short refnum;
  51.  
  52.   if(Button())
  53.       return off_ICON;
  54.  
  55.   if(mmc_read_prep(&s)!=0)
  56.       mmc_invent_state(&s);
  57.  
  58. #ifdef RUBBISH
  59.  if(!FLSET(s,MCS_want_open))
  60.        return off_ICON;
  61. #endif
  62.  
  63.  
  64.   err=mmc_drvr_find_or_install(&refnum);
  65.   if(err!=0)
  66.       return sick_ICON;
  67.  
  68.   err=OpenDriver(MMC_name,&refnum);
  69.   if(err!=0)
  70.       return sick_ICON;
  71.  
  72.   err=mmc_set_drvr_state_sound_yes(refnum,&s,MMC_set_state);
  73.   if(err!=0)
  74.       return sick_ICON;
  75.  
  76.   tick(refnum);
  77.   tick(refnum);
  78.   tick(refnum);
  79.   if((mmc_get_drvr_state(refnum,&s)<0))
  80.     return sick_ICON;
  81.  
  82.   if(FLSET(s,MCS_error))
  83.        return sick_ICON;
  84.  
  85.   if(!FLSET(s,MCS_want_open))
  86.        return off_ICON;
  87.  
  88.   return on_ICON;
  89. }
  90.  
  91. void real_main()
  92. {
  93.   int final_icon;
  94.   ShowINIT(start_ICON,0);
  95.   final_icon=mmc_start();
  96.   ShowINIT(final_icon,-1);
  97. }
  98.